지난 글에서는 Elastic Search를 이용해 통근시간을 분석해 보자는 목표를 세우고 필요한 데이터를 수집하는 방법에 대해 알아 보았다.
이번글에선 데이터 분석에 활용되는 ELK(Elasitc Search, Logstash, Kibana)의 간략한 소개와 설치 및 셋팅 방법에 대해 알아보자.
우선 rawData 분석에 활용되는 Elastic Search에 대해 알아보자.
Elastic Search(이하 ES)는 Lucene 이란 자바 오픈소스 검색 라이브러리 기반으로 만들어진 검색 엔진으로 JSON 형식으로 데이터를 저장하여 관리한다.
RESTful API 를 기반으로 다양한 형태의 데이터를 정형화 하여 검색 및 통계등을 낼 수 있는 강력한 도구이다. 또한 분산과 확장에 용이하여 대량의 데이터도 빠르게 처리가 가능하다.
처음 ES를 접한것은 log 데이터 분석에 활용된다는 얘기를 듣고 어떻게 활용되는지 보고 지나갔었는데 다시 ES를 공부해보니 데이터 분석에 상당히 막강한 도구로 활용 할 수 있다는 생각이 들었다.
설치방법
기본적으로 설치하는 방법에는 apt,yum 등을 이용한 설치 방법과 binary 형태로 제공되는 압축파일을 받아 실행 하는 방법이 있는데 처음에는 압축파일을 다운받아 테스트해보길 권장한다.
yum등을 이용한 설치 방법은 로그파일 위치,각종 설정 파일의 위치를 파악하기 힘들고 문제가 생겼을 경우 쉽게 수정하기 힘들수 있다.
설치 파일
- Elastic Search : 데이터 저장 및 분석
- Logstash : source Data를 ES에 저장하는 tool
- Kibana : ES에 저장된 데이터를 관리해주고 시각화 해주는 UI tool
위 3개의 설치파일 모두 Elastic Search 공식 홈페이지에서 최신 버전으로 다운받아 사용하길 권장한다.
ES를 사용하기 앞서 몇가지 용어를 알고 갈게 있다.
- index : 검색의 기준이 되는 단위로 rdb로 치면 database와 유사하다.
- type : rdb의 table과 같은 역활.
- document : 데이터의 구성 단위로써 하나의 json object로 이루어져있다. rdb에서의 row의 개념으로 보면 된다.
- mapping : 데이터 필드의 type을 명시하는 것으로 table schema 를 생성하는것과 유사하다.
아직 ES 클러스터를 구성하여 운용할 필요가 없기에 단일 노드로 구성해서 사용하였는데 추후 대량의 데이터와 index가 늘어나면 클러스터를 구성해볼 필요성이 있을것 같다.
다음 글에서는 1탄에서 준비한 source data(대중교통 이용정보)를 가공하여 ES에 저장하는 방법에 대해 알아보겠다.